import React, { useEffect } from 'react';

export default () => {
    // function makeRangeIterator(start = 0, end = Infinity, step = 1) {
    //     let nextIndex = start;
    //     let iterationCount = 0;

    //     const rangeIterator = {
    //         next: function() {
    //             let result;
    //             if (nextIndex < end) {
    //                 result = { value: nextIndex, done: false };
    //                 nextIndex += step;
    //                 iterationCount++;
    //                 return result;
    //             }
    //             return { value: iterationCount, done: true };
    //         }
    //     };
    //     return rangeIterator;
    // }
    // function* makeRangeIterator2(start = 0, end = Infinity, step = 1) {
    //     for (let i = start; i < end; i += step) {
    //         yield i;
    //     }
    // }
    useEffect(() => {
        // function* foo() { 
        //     yield 1; 
        //     yield 2; 
        //     yield 3; 
        // }
        // for (let o of foo()) { 
        //     if (o === 2) {
        //         return; // closes iterator, triggers return
        //     }
        //     console.log(o); 
        // }
        // var gen = (function *() {
        //     yield 1;
        //     yield 2;
        //     yield 3;
        // })();
        // for (let o of gen) {
        //     // console.log(o);
        //     break;// 关闭生成器
        // } 

        // 生成器不应该重用，以下没有意义！
        // for (let o of gen) {
        //     console.log(o);
        // }
        // 可以迭代步数
        // let it = makeRangeIterator(1, 10, 2);

        // let result = it.next();
        // while (!result.done) {
        //     console.log(result.value); // 1 3 5 7 9
        //     result = it.next();
        // }

        // console.log('Iterated over sequence of size: ', result); // 5
        // generater 它允许你定义一个包含自有迭代算法的函数， 同时它可以自动维护自己的状态。
        // var a = makeRangeIterator(1, 10, 2);
        // // a.next()
        // // console.log(a);
        // while (!a.next().done) {
        //     console.log(a.next());
        // }
    });
    return (
        <div>
            Makegenerater
        </div>
    );
};